home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Sample Code / Snippets / QuickDraw / DirectSetEntries / DirectSetEntries.cp next >
Encoding:
Text File  |  1992-07-15  |  1.3 KB  |  62 lines  |  [TEXT/MPS ]

  1. #include    <Resources.h>
  2. #include    <Memory.h>
  3. #include    <Video.h>
  4. #include    <Quickdraw.h>
  5. #include    <Files.h>
  6. #include    <Devices.h>
  7.  
  8. #define    TRUE            0xFF
  9. #define    FALSE            0
  10.  
  11. struct myVDEntryRecord {
  12.         CSpecArray *csTable;
  13.         short   csStart;
  14.         short    csCount;
  15.     };
  16. typedef struct myVDEntryRecord myVDEntryRecord;
  17.  
  18. main()
  19. {
  20.     ColorSpec            myTable[0xFF];
  21.     short                i;
  22.     OSErr                result;
  23.     myVDEntryRecord        *VDPtr, **sickHack;
  24.     GDHandle            curdev, olddev;
  25.     CntrlParam            pRecord;
  26.     
  27.     VDPtr = (myVDEntryRecord *) NewPtr (sizeof (myVDEntryRecord));
  28.     if (VDPtr == nil || MemError() != noErr)
  29.         Debugger();
  30.  
  31.     olddev = GetGDevice();
  32.     
  33.     curdev = GetDeviceList();
  34.     do {
  35.         if ((**curdev).gdType == 2) {
  36.             for (i=0;i<=0xFE;i++) {
  37.                 myTable[i].value = i;
  38.                 myTable[i].rgb.red = 0xffff - i*0xff;
  39.                 myTable[i].rgb.green = 0x0 + i*0xff;
  40.                 myTable[i].rgb.blue = 0x0 + i*0xff;
  41.                   }
  42.             
  43.             VDPtr->csTable = (CSpecArray *)&myTable;
  44.             VDPtr->csStart = 0;
  45.             VDPtr->csCount = 0xfe;
  46.  
  47.             pRecord.ioCompletion = nil;
  48.             pRecord.ioVRefNum = 0;
  49.             pRecord.ioCRefNum = (**curdev).gdRefNum;
  50.             pRecord.csCode = 8;
  51.             sickHack = (myVDEntryRecord **)&pRecord.csParam;
  52.             *sickHack = VDPtr;
  53.  
  54.             if (result = PBControl((ParmBlkPtr)&pRecord, false) )
  55.                   Debugger();
  56.             }
  57.             
  58.         curdev = GetNextDevice(curdev);
  59.         } while (curdev != nil);
  60.   
  61.     SetGDevice(olddev);
  62. }